prompt 住院国家医保接口日志:【1101】人员基本信息获取_日志生成 create or replace procedure SP_ZY_GJYBRZ_ZYXXHQ( PYBJKID in varchar2 ,--[1]输入:医保接口ID PJKCJBM in varchar2 ,--[2]输入:接口场景编码 PBRID00 in number ,--[3]输入:BRID00 PZYID00 in number ,--[4]输入:ZYID000 PZYH000 in varchar2 ,--[5]输入:ZYH000 PCZY000 in number ,--[6]输入:操作员编码 PCZYXM0 in varchar2 ,--[7]输入:操作员姓名 PCZYKS0 in number ,--[8]输入:操作员科室 PQQCSID in varchar2 default '' ,--[9]输入:参数中间ID PINXML0 in varchar2 default '' ,--[10]输入:请求参数(XML) POTHER0 in varchar2 default '' ,--[11]输入:备用参数 PCOMMIT in varchar2 default 'N' ,--[12]输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number ,--[13]输出:执行状态 0:失败 1:成功 POUTXML out varchar2 ,--[14]输出:出参(XML) PERRMSG out varchar2 --[15]输出:错误信息 ) as -- MODIFICATION HISTORY -- Person Date Comments --zhangyc 2022.01.24 created by 【1101】人员基本信息获取_日志生成 ZYSF-20220124-001 --zhangyc 2022.02.19 医保接口脚本优化,INFNLX=3:调用服务接口报文'arg0'否则不加 by ZYSF-20220221-001 --zhangyc 2022.03.07 接口挂号优化 by ZYSF-20220307-003 --zhangyc 2022.04.11 接口优化 by ZYSF-20220411-002 --zhangyc 2022.09.21 优化凭证读卡 by ZYSF-20220920-002 --zhangyc 2022.09.28 如果请求报文中certno、psn_name同基本信息不一致,按院内发送 by ZYSF-20220928-001 --zhangyc 2023.04.20 医保凭证就诊解析请求参数2中的psn_cert_type -- --------- ---------- ------- LS_COUNT0 number(12,2); LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_INFNLX BM_TYCJBM.INFNLX%type;--:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口 LS_QQJDBS BM_TYCJBM.QQJDBS%type;--:请求节点标识 LS_FHJDBS BM_TYCJBM.FHJDBS%type;--:返回节点标识 LS_DateTimeStr varchar2(20); --日期时间型:格式为:yyyy-MM-dd HH:mm:ss LS_DateStr varchar2(10); --日期型:格式为:yyyy-MM-dd LS_TimeStr varchar2(10); --时间型:格式为:HH:mm:ss LS_JKFSZ0 ZY_YBJKMX.JKFSZ0%type;--接口发送值 LS_JKFHZ0 ZY_YBJKMX.JKFHZ0%type;--接口返回值 LS_VALUE0 ZY_YBJKMX.VALUE0%type;--请求报文字符串 LS_QQDATA ZY_YBJKRZ.QQDATA%type;--请求报文 LS_MainJson ZY_YBJKRZ.QQDATA%type;--主项Json LS_detailJson ZY_YBJKRZ.QQDATA%type;--明细Json LS_inputJson ZY_YBJKRZ.QQDATA%type;--input输入 LS_YBKH00 BM_BRXXB0.YBKH00%type; --医保卡号 LS_YBID00 BM_BRXXB0.YBID00%type; --医保ID LS_BRZJLX BM_BRXXB0.BRZJLX%type; --病人证件类型 LS_BRZJBH BM_BRXXB0.BRZJBH%type; --病人证件编号 LS_BRXM00 BM_BRXXB0.BRXM00%type; --病人姓名 LS_XZQH00 BM_BRXXB0.XZQH00%type; --行政区号 LS_YBKSBM BM_BRXXB0.YBKSBM%type; --医保卡识别码 LS_AAC999 BM_BRXXB0.AAC999%type; --个人管理码 LS_aaz500 ZY_YBJKRZ.aaz500%type; --社会保障卡号 LS_aac003 ZY_YBJKRZ.AAC003%type; --姓名 LS_aac002 ZY_YBJKRZ.AAC002%type; --证件号码 LS_aaz501 ZY_YBJKRZ.aaz501%type; --aaz501:卡识别码 LS_bke284 ZY_YBJKRZ.bke284%type; --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证) LS_card_sn ZY_YBJKRZ.card_sn%type; --卡识别码, 就诊凭证类型为“03”时必填 卡识别码, 就诊凭证类型为“03”时必填 LS_mdtrt_cert_type ZY_YBJKRZ.mdtrt_cert_type%type; --就诊凭证类型 LS_mdtrt_cert_no varchar2(50); --就诊凭证编号, 就诊凭证类型为“01”时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号 LS_begntime varchar2(20); --开始时间, 获取历史参保信息时传入 LS_psn_cert_type varchar2(6); --人员证件类型, 字典取值 LS_certno varchar2(50); --证件号码 LS_psn_name varchar2(50); --人员姓名 LS_YBPZ_idType varchar2(6); --医保凭证_人员证件类型 LS_YBPZ_idNo varchar2(50); --医保凭证_证件号码 LS_YBPZ_userName varchar2(50); --医保凭证_人员姓名 LS_YBPZ_insuOrg varchar2(6); --医保凭证_行政区号 --修改医保发送明细表 cursor CUR_UPDATE_YBJKMX is select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ from ZY_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') order by JKMXID; --查询主项数据 cursor CUR_QUERY_Main is select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ from ZY_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') and CJBM00 in ('AllIn') order by JKMXID; --查询明细数据 cursor CUR_QUERY_detail is select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ from ZY_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') and CJBM00=PJKCJBM order by JKMXID; begin PZXZT00:=0; --输出:执行状态 0:失败 1:成功 POUTXML:=null;--输出:出参(XML) PERRMSG:=null;--输出:错误信息 LS_QQDATA:=null;--请求报文 LS_MainJson:=null;---主项Json LS_detailJson:=null;---明细Json LS_inputJson:=null;---input输入 LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); LS_DateTimeStr:=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'); --日期时间型:格式为:yyyy-MM-dd HH:mm:ss LS_DateStr:=to_char(sysdate,'YYYY-MM-DD'); --日期型:格式为:yyyy-MM-dd LS_TimeStr:=to_char(sysdate,'HH24:MI:SS'); --时间型:格式为:HH:mm:ss LS_BRXM00 := null; LS_BRZJBH := null; --:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口 LS_INFNLX:= substrb(SF_XT_GETXMLSTR('INFNLX',PINXML0),1,2); if LS_INFNLX is null then LS_INFNLX:= substrb(SF_XT_GETXMLSTR('INFNLX',POTHER0),1,2); end if; --:请求节点标识 LS_QQJDBS:= substrb(SF_XT_GETXMLSTR('QQJDBS',PINXML0),1,30); if LS_QQJDBS is null then LS_QQJDBS:= substrb(SF_XT_GETXMLSTR('QQJDBS',POTHER0),1,30); end if; --:返回节点标识 LS_FHJDBS:= substrb(SF_XT_GETXMLSTR('FHJDBS',PINXML0),1,30); if LS_FHJDBS is null then LS_FHJDBS:= substrb(SF_XT_GETXMLSTR('FHJDBS',POTHER0),1,30); end if; if PBRID00 > 0 then begin select A.YBKH00,A.YBID00,A.BRZJLX,A.BRZJBH,A.BRXM00,A.XZQH00,A.YBKSBM,AAC999 into LS_YBKH00,LS_YBID00,LS_BRZJLX,LS_BRZJBH,LS_BRXM00,LS_XZQH00,LS_YBKSBM,LS_AAC999 from BM_BRXXB0 A where A.BRID00=PBRID00; exception when others then PERRMSG := '未找到病人基本信息(BRID00='||PBRID00||')'; PZXZT00:=0; --执行状态 0:失败 1:成功 return; end; end if; begin select A.bke284,A.aaz500,A.aac002,A.aac003,A.aaz501,mdtrt_cert_type,mdtrt_cert_no,card_sn into LS_bke284,LS_aaz500,LS_aac002,LS_aac003,LS_aaz501, LS_mdtrt_cert_type,LS_mdtrt_cert_no,LS_card_sn from ZY_YBJKRZ a where YBJKID=PYBJKID; exception when others then LS_bke284:=null;--bke284:福建身份认证类型(01:读卡02:融合码06:医保码20:医疗证) LS_aaz500:=null;--aaz500:社会保障卡号 LS_aac002:=null;--aac002:证件号码(社会保障号) LS_aac003:=null;--aac003:姓名 LS_aaz501:=null;--aaz501:卡识别码 LS_mdtrt_cert_type:=null; LS_mdtrt_cert_no:=null; LS_card_sn:=null;--卡识别码, 就诊凭证类型为“03”时必填 卡识别码, 就诊凭证类型为“03”时必填 end; --证件号码(社会保障号) if LS_aac002 is null then LS_AAC002 := substrb(SF_XT_GETXMLSTR('aac002',PINXML0),1,50); if LS_AAC002 is null then LS_AAC002 := substrb(SF_XT_GETXMLSTR('aac002',POTHER0),1,50); end if; if LS_AAC002 is null then LS_AAC002 := substrb(SF_XT_GETXMLSTR('brzjbh',PINXML0),1,50); end if; end if; --如果aac002跟院内不一致,把以院内未准 if trim(LS_BRZJBH) is not null and SP_SF_CHECKSFZH(trim(LS_BRZJBH))=1 and trim(LS_BRZJBH)<>trim(LS_AAC002) then LS_AAC002:=substrb(trim(LS_BRZJBH),1,50); end if; --certno 证件号码 LS_certno := substrb(SF_XT_GETXMLSTR('certno',PINXML0),1,50); if LS_certno is null then LS_certno := substrb(SF_XT_GETXMLSTR('certno',POTHER0),1,50); end if; if trim(LS_certno) is null and trim(LS_aac002) is not null then LS_certno := substrb(LS_aac002,1,50); end if; --如果 if trim(LS_aac002) is not null and SP_SF_CHECKSFZH(trim(LS_aac002))=1 and trim(LS_certno)<>trim(LS_aac002) then LS_certno:=substrb(LS_aac002,1,50); --证件号码 end if; --病人姓名 if LS_aac003 is null then LS_AAC003 := substrb(SF_XT_GETXMLSTR('aac003',PINXML0),1,50); if LS_AAC003 is null then LS_AAC003 := substrb(SF_XT_GETXMLSTR('aac003',POTHER0),1,50); end if; if LS_AAC003 is null then LS_AAC003 := substrb(SF_XT_GETXMLSTR('brxm00',PINXML0),1,50); end if; end if; --如果aac003跟院内不一致,把以院内未准 if trim(LS_BRXM00) is not null and trim(LS_BRXM00)<>trim(LS_AAC003) then LS_AAC003:=substrb(trim(LS_BRXM00),1,50); end if; --psn_name 人员姓名 LS_psn_name := substrb(SF_XT_GETXMLSTR('psn_name',PINXML0),1,50); if LS_psn_name is null then LS_psn_name := substrb(SF_XT_GETXMLSTR('psn_name',POTHER0),1,50); end if; if trim(LS_psn_name) is null and trim(LS_AAC003) is not null then LS_psn_name := substrb(LS_AAC003,1,50); --人员姓名 end if; if trim(LS_AAC003) is not null and trim(LS_psn_name)<>trim(LS_AAC003) then LS_psn_name := substrb(LS_AAC003,1,50); --人员姓名 end if; --3.mdtrt_cert_no: 就诊凭证编号 if LS_mdtrt_cert_no is null then LS_mdtrt_cert_no := substrb(SF_XT_GETXMLSTR('mdtrt_cert_no',PINXML0),1,50); end if; --开始时间 LS_begntime := substrb(SF_XT_GETXMLSTR('begntime',PINXML0),1,20); if LS_begntime is null then LS_begntime := to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'); end if; --psn_cert_type:人员证件类型 LS_psn_cert_type := substrb(SF_XT_GETXMLSTR('psn_cert_type',PINXML0),1,20); if LS_psn_cert_type is null then LS_psn_cert_type := substrb(SF_XT_GETXMLSTR('psn_cert_type',POTHER0),1,20); end if; if LS_psn_cert_type is null and LS_BRZJLX is not null then LS_psn_cert_type := substrb(SF_XT_GETYBSXZD('psn_cert_type',LS_BRZJLX,'1','1'),1,6); --人员证件类型 end if; --卡识别码 LS_card_sn:=substrb(nvl(LS_card_sn,LS_aaz501),1,50); --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证) if LS_bke284='20'then LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证 elsif LS_bke284='01'then --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证) LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证 elsif LS_bke284='06'then LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证 end if; if LS_mdtrt_cert_type='03' then --就诊凭证类型(01:时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号) LS_card_sn:=LS_card_sn; else LS_card_sn:=null; end if; --2023.04.20--医保电子凭证处理---begin-- /* --医保凭证返回报文: {"code":"0","data":{"aac002":"H10147178","aaz500":"DK1279450","actCardNo":"1","bab520":"350299","bkz543":"4243825228398849254401350000","businessType":"01101","certfCodg":"3502991177H0418","ecIndexNo":"232EA7A88D3961BCC0772488AE616349382B4E91F87CF8FE4BE5D0A2A32450EA","ecToken":"350000ecuevrn95hje0a83460a00009cd74835","id0000":"35000004000000000H1014717801","idNo":"H10147178","idType":"04","idcode":"4243825228398849254401350000","identity_token":"HtMKdwHko/m4M//QyLaUp8EBtJX3hsSS5f7frnBVpuZaIKJN+QtosxHz1utrkbjd/7ih0zzk45w0QA2tQPYArdfS8n1kys/Jmlkyqu9vcLsUrt7GCyW+CWi+NeUtW6TAa4BbUF9V6eb/APbUsU/w3Dip2kVK7zmHhTADsw1qYIuQBGqU/5aGyQxXxHA2pVhEUxQwGffysTrpF8jP4iOiPhenT0D+6JOe//oVS1F/atH19oNKPgZ/3Iw+QjY5DDbaj0SMFhMrMm41Ge5na8w+hI1HF3W/CT3x1kGKq25/KVEPNN2w4O0PRLTOis/N6DUuTdz7tQhFNpUKbFRmN0m+m6cWKBqw7g+A4bIRh3Y5UwNv1hrd08Ubfl4k5gZ7ktve5/W/Kf0mUVi8UBFGErBcZYXuu68Gd3lqH+ivakktUjs=","insuOrg":"350299","officeId":"5000","officeName":"治未病科","operatorId":"537","operatorName":"机房21","orgId":"3505990102","userName":"张佳鸿"},"extra":"","infno":null,"message":"success","orgId":"3505990102","transType":"ec.query"} --请求参数2: 350000ecuevrn95hje0a83460a00009cd7483504H10147178张佳鸿DK1279450H10147178350299 */ if LS_bke284='06' then --医保电子凭证 LS_YBPZ_idType := substrb(SF_XT_GETXMLSTR('idType',POTHER0),1,6); --医保凭证_人员证件类型 idType=psn_cert_type if LS_YBPZ_idType is null then LS_YBPZ_idType := substrb(SF_XT_GETXMLSTR('psn_cert_type',POTHER0),1,6); end if; LS_YBPZ_idNo := substrb(SF_XT_GETXMLSTR('idNo',POTHER0),1,50); --医保凭证_证件号码 idNo=certno if LS_YBPZ_idNo is null then LS_YBPZ_idNo := substrb(SF_XT_GETXMLSTR('certno',POTHER0),1,50); end if; LS_YBPZ_userName := substrb(SF_XT_GETXMLSTR('userName',POTHER0),1,50); --医保凭证_人员姓名 userName=psn_name if LS_YBPZ_userName is null then LS_YBPZ_userName := substrb(SF_XT_GETXMLSTR('psn_name',POTHER0),1,50); end if; LS_YBPZ_insuOrg := substrb(SF_XT_GETXMLSTR('insuOrg',POTHER0),1,60); --医保凭证_行政区号 insuOrg=insuplc_admdvs if LS_YBPZ_insuOrg is null then LS_YBPZ_insuOrg := substrb(SF_XT_GETXMLSTR('insuplc_admdvs',POTHER0),1,6); end if; if LS_YBPZ_idType is not null then LS_psn_cert_type :=LS_YBPZ_idType; --人员证件类型 end if; if LS_YBPZ_idNo is not null then LS_certno :=LS_YBPZ_idNo; --证件号码 end if; if LS_YBPZ_userName is not null then LS_psn_name :=LS_YBPZ_userName; --人员姓名 end if; end if; --2023.04.20--医保电子凭证处理---begin-- --插入表ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00, JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ,ZDLX00,BZ0000,CJBM00) select PYBJKID,A.ZDNBID,A.JDBM00,null,substrb(nvl(A.JKDZBM,A.JKSXBM),1,50),substrb(nvl(A.JKDZMC,JKSXMC),1,100), A.JKSXBM,A.JKSXMC,null,null,substrb(a.JKFSLX,1,1),substrb(a.ZDTYPE,1,1),a.BZ0000,A.CJBM00 from BM_TYCJZD A where A.CJBM00=PJKCJBM and nvl(A.SFYX00,'1')='1' and A.JKFSLX in ('1','2','3'); --修改:医保发送变量赋值 for C_YBFS in CUR_UPDATE_YBJKMX loop LS_JKFSZ0:=null;--接口发送值 LS_JKFHZ0:=null;--接口返回值 LS_VALUE0:=null;--请求报文字符串 if C_YBFS.JKSXBM='mdtrt_cert_type' then --1.mdtrt_cert_type 就诊凭证类型 LS_JKFSZ0:=substrb(LS_mdtrt_cert_type,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='mdtrt_cert_no' then --2.mdtrt_cert_no 就诊凭证编号 LS_JKFSZ0:=substrb(LS_mdtrt_cert_no,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='card_sn' then --3.card_sn 卡识别码 LS_JKFSZ0:=substrb(LS_card_sn,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='begntime' then --4.begntime 开始时间 LS_JKFSZ0:=substrb(LS_begntime,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='psn_cert_type' then --5.psn_cert_type 人员证件类型 LS_JKFSZ0:=substrb(LS_psn_cert_type,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='certno' then --6.certno 证件号码 LS_JKFSZ0:=substrb(LS_certno,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; elsif C_YBFS.JKSXBM='psn_name' then --7.psn_name 人员姓名 LS_JKFSZ0:=substrb(LS_psn_name,1,250); update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID; end if; end loop; --查询主项数据 for C_Main in CUR_QUERY_Main loop LS_MainJson := SF_XT_GETJSONSTR(LS_MainJson,C_Main.JKSXBM,C_Main.JKFSZ0,'0'); end loop; --查询明细数据 for C_detail in CUR_QUERY_detail loop LS_detailJson := SF_XT_GETJSONSTR(LS_detailJson,C_detail.JKSXBM,C_detail.JKFSZ0,'0'); end loop; if LS_MainJson is null then PZXZT00:=0; PERRMSG:='主项报文不能为空!'; return; end if; if LS_detailJson is null then PZXZT00:=0; PERRMSG:='明细报文不能为空!'; return; end if; --明细项加标题 LS_detailJson := SF_XT_GETJSONSTR(null,'data',LS_detailJson,'1'); --input输入 LS_inputJson := SF_XT_GETJSONSTR(LS_inputJson,'input',LS_detailJson,'1'); --拼接整个报文 --INFNLX:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口 if LS_INFNLX='3' then LS_QQDATA := SF_XT_GETJSONSTR(LS_QQDATA,'arg0',LS_MainJson||','||LS_inputJson,'1'); else LS_QQDATA :=LS_MainJson||','||LS_inputJson; end if; LS_QQDATA:='{'||LS_QQDATA||'}'; --修改请求报文 update ZY_YBJKRZ set QQDATA=LS_QQDATA ,--qqdata:请求报文 aaz500=substrb(nvl(LS_aaz500,aaz500),1,30) ,--aaz500:社会保障卡号 aac002=substrb(nvl(LS_certno,aac002),1,30) ,--aac002:证件号码(社会保障号) aac003=substrb(nvl(LS_psn_name,aac003),1,50) ,--aac003:姓名 aaz501=substrb(nvl(LS_card_sn,aaz501),1,50) ,--aaz501:卡识别码 card_sn=substrb(nvl(LS_card_sn,card_sn),1,50) ,--card_sn:[国家医保]卡识别码=aaz501 psn_name=substrb(nvl(LS_psn_name,psn_name),1,50) ,--psn_name:[国家医保]人员姓名=aac003 psn_cert_type=substrb(nvl(LS_psn_cert_type,psn_cert_type),1,10) ,--psn_cert_type:[国家医保]人员证件类型=aac058 certno=substrb(nvl(LS_certno,certno),1,50) --certno:[国家医保]证件号码=aac002 where YBJKID=PYBJKID; if PCOMMIT='Y' then commit; end if; PZXZT00:=1; --输出:执行状态 0:失败 1:成功 PERRMSG:=null; --输出:错误信息 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('住院医保接口交互生成失败(基本信息获取)!原因:'||sqlerrm,1,200); rollback; when others then PZXZT00:=0; PERRMSG:=substrb('住院医保接口交互生成失败(基本信息获取)!原因:'||sqlerrm,1,200); rollback; end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%